home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / lang / sofa.lha / sofa / developer / script / extract_exml.rexx next >
OS/2 REXX Batch file  |  1999-10-10  |  2KB  |  89 lines

  1. /* extract_exml.rexx -- Extract exml#?.zip and modify it to work with Sofa.
  2.  *
  3.  * In more detail, the following operations are performed
  4.  * - the ZIP archive is extracted, and CR/LF in text files are converted to LF
  5.  * - #?.exe and #?.ge files are removed
  6.  *
  7.  * $VER: extract_exml.rexx 1.1 (10.10.99)
  8.  */
  9. AddLib('rexxsupport.library', 0, -30, 0)
  10.  
  11. exml_zip     = 'sofa_archive:exml-016.zip'
  12. sofa_path    = 'sofa:'
  13. archive_path = 'sofa:archive/'
  14. library_path = 'sofa:library/'
  15. exml_path    = 'sofa:library/exml/'
  16.  
  17. temp_file = 't:make_exml_conversion.tmp'
  18.  
  19. /* Flags to specify which operations are to be executed */
  20. no_extract = 1
  21. no_remove = 0
  22. no_rename = 0
  23.  
  24. old_path = Pragma('Directory', exml_path)
  25. Address Command
  26.  
  27. /* Extract archive with the following options
  28.  * -a  convert CR/LF in text files
  29.  * -q  quiet operation
  30.  * -o  overwrite without asking
  31.  */
  32. Say 'extract ' || exml_zip
  33. if ~no_extract then do
  34.    if ~exists(exml_path) then do
  35.       'makedir ' || exmp_path
  36.    end
  37.    'unzip -aqo ' || exml_zip
  38. end
  39. else do
  40.    Say '   skipped'
  41. end
  42.  
  43.  
  44. /* Remove useless files */
  45. Say 'remove useless files'
  46. if ~no_remove then do
  47.    'rx sofa:developer/script/recursive_remove_pattern ' || exml_path || ' pattern="#?.(dll|exe|msc|scc|dsp|lib|dsw|mak)"'
  48. end
  49. else do
  50.    Say '   skipped'
  51. end
  52.  
  53. /* Change directory into library */
  54. Pragma('Directory', exml_path || 'library')
  55.  
  56. /* Rename files with too long names */
  57. Say 'rename too long filenames'
  58. if ~no_rename then do
  59.    Pragma('Directory', exml_path || 'compiler_specific/se/clib')
  60.    source = 'expat_parser_error_codes_wrap.c'
  61.    target = 'expat_parser_error_codes.c'
  62.    if exists(source) then do
  63.       call Delete('target')
  64.       'rename ' || source || ' ' || target
  65.    end
  66.    else do
  67.       if exists(target) then do
  68.          Say '   already renamed before'
  69.       end
  70.       else do
  71.          Say '   cannot find "' || source || '"'
  72.          exit 10
  73.       end
  74.    end
  75.    Say 'make rename.se'
  76.    Pragma('Directory', exml_path)
  77.    'sofa:developer/make_rename_se/make_rename_se amiga ' || exml_zip
  78. end
  79. else do
  80.    Say '   skipped'
  81. end
  82.  
  83. /* Clean up */
  84. call Delete(path_file)
  85. call Delete(temp_file)
  86. Pragma('Directory', old_path)
  87.  
  88. exit 0
  89.